package uk.co.q3c.deplan.client.dao;

import uk.co.q3c.deplan.client.domain.resource.BaseCalendar;
import uk.co.q3c.deplan.client.domain.util.CalendarAdjustments;
import uk.co.q3c.deplan.server.service.CalendarService_BigT;

import com.google.gwt.user.client.rpc.AsyncCallback;

/**
 * @see CalendarService_BigT
 * @author David Sowerby 17 Apr 2010
 * 
 */
public interface CalendarServiceAsync {

	void countBaseCalendars(AsyncCallback<Integer> callback);

	/**
	 * @see CalendarService_BigT#findBaseCalendar()
	 */
	void findBaseCalendar(AsyncCallback<BaseCalendar> callback);

	void countBaseCalendarsDiscarded(AsyncCallback<Integer> callback);

	void deleteAllBaseCalendars(AsyncCallback<Void> callback);

	/**
	 * @see CalendarService_BigT#countCalendarAdjustments()
	 */
	void countCalendarAdjustments(AsyncCallback<Integer> callback);

	void save(BaseCalendar baseCalendar, AsyncCallback<Void> callback);

	void save(CalendarAdjustments adjustments, AsyncCallback<Void> callback);

}
